//#include <stdio.h>
//#include <sys/shm.h>
//#include <sys/types.h>
//#include <sys/ipc.h>
//#include <stdlib.h>
//#include <unistd.h>
//int main()
//{
//
//	key_t k = ftok(".",0x11);
//	if(k == -1)
//	{
//		perror("ftok");
//		exit(1);
//	}
//	printf("0x%x\n",k);
//	sleep(3);
//	int shmid = shmget(k,4096,IPC_CREAT);
//	if(shmid == -1)
//	{
//		perror("shmget");
//		exit(1);
//	}
//	char* ptr = shmat(shmid,NULL,0);
//	if(ptr == (char*)-1)
//	{
//		perror("shmat");
//		exit(1);
//	}
//    printf("Process B read: %s\n", ptr);
//	int dt = shmdt(ptr);
//	if(dt == -1)
//	{
//		perror("shmdt");
//		exit(1);
//	}
//
//	return 0;
//}
#include <stdio.h>
#include <sys/shm.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <stdlib.h>
#include <unistd.h>
int main()
{

	key_t k = ftok(".",0x11);
	if(k == -1)
	{
		perror("ftok");
		exit(1);
	}
	printf("0x%x\n",k);
	sleep(3);
	int shmid = shmget(k,4096,0666);
	if(shmid == -1)
	{
		perror("shmget");
		exit(1);
	}
	char* ptr = shmat(shmid,NULL,0);
	if(ptr == (char*)-1)
	{
		perror("shmat");
		exit(1);
	}
    printf("Process B read: %s\n", ptr);
	int dt = shmdt(ptr);
	if(dt == -1)
	{
		perror("shmdt");
		exit(1);
	}
    if (shmctl(shmid, IPC_RMID, NULL) == -1)
	{ 
        perror("shmctl");
        exit(1);
    }

	return 0;
}
